/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Parser.Validador;

import Utilidades.Balance;
import Utilidades.VerificadorStrings;

/**
 *
 * @author Administrador
 */
public class ValidadorTagInicio implements IValidador {
    private ValidadorVariables vVariables;

    /**
     * Constructor sin parámetros que crea un ValidadorVariables
     */
    public ValidadorTagInicio() {
        this.vVariables = new ValidadorVariables();
    }

    public boolean validar(String str) {
        boolean resultado = true;
        this.vVariables.clear();

        try {

            if (VerificadorStrings.esInicioFin(str, "<", ">") == false) {
                resultado = false;
            }
            else if (VerificadorStrings.estaVacia(str, "<", ">") == true) {
                resultado = false;
            }
            else if (Balance.esBalanceada(str, '"', '"') == false) {
                resultado = false;
            }
            else if (VerificadorStrings.tieneMasDe(str, "<", 1, true) == true) {
                resultado = false;
            }
            else if (VerificadorStrings.tieneMasDe(str, ">", 1, true) == true) {
                resultado = false;
            }
            else if (VerificadorStrings.tieneMasDe(str, "?", 0, true) == true) {
                resultado = false;
            }
            else if (VerificadorStrings.tieneMasDe(str, "-", 0, true) == true) {
                resultado = false;
            }
            else if (VerificadorStrings.tieneMasDe(str, "!", 0, true) == true) {
                resultado = false;
            }
            else if (VerificadorStrings.tieneMasDe(str, "/", 0, true) == true) {
                resultado = false;
            }
            else if (VerificadorStrings.validarNombreTag(str, "<", ">") == false) {
                resultado = false;
            }

        } catch (Exception e) {
            resultado = false;
        } finally {
            return resultado;
        }
    }

}
